1 What is Spring Boot

Spring Boot 是一个轻量级框架,可以完成 Spring 应用程序的大部分配置工作,能够快速创建可以直接运行的基于 Spring 的应用程序。Spring Boot 的目的是提供一组工具,以便快速构建容易配置的 Spring 应用程序。

2 Why Spring Boot

Spring 很难配置!

编写过基于 Spring 的应用程序的同学,都知道只是完成 “Hello, World” 就需要大量配置工作。Spring 是一个优雅的框架集合,需要小心协调配置才能正确工作,这并不算坏事。但这种优雅的代价是配置变得很复杂。

Spring Boot提供了这样的解决方案.

Spring Boot makes it easy to create stand-alone, production-grade Spring-based Applications that you can run. We take an opinionated view of the Spring platform and third-party libraries, so that you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

Spring Boot 能轻松地创建能直接运行的独立的、生产级的、基于 Spring 的应用程序。Spring Boot对 Spring 平台和第三方库有自己的看法,所以从一开始只会遇到极少的麻烦。多数Spring Boot应用仅需要非常少的配置.只需极少的配置,就可以快速创建一个正常运行的 Spring 应用程序。这些极少的配置采用了注解的形式,所以没有 XML。

3 How To

Spring Boot 2.0.5.RELEASE requires Java 8 or 9 and Spring Framework 5.0.9.RELEASE or above.

System Requirements

最低要求

JDK>=8/9

Spring 5

Maven 3.2+

Servlet 3.1+

Servlet Container

Spring Boot 支持以下内置的servlet containers,也可以部署在任意兼容Servlet 3.1+的容器上

  • Tomcat 8.5
  • Jetty 9.4
  • Undertow 1.4

Hello World

典型的Spring Boot 应用pom.xml继承自spring-boot-starter-parent,并且声明一些 “Starters”.

Creating the POM

<!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

Writing the Code

@RestController
@EnableAutoConfiguration
public class Example {
    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Example.class, args);
    }
}

Running

几种启动方式

  • IDE中run main方法

  • 命令行执行mvn spring-boot:run

  • mvn package打包为jar包后,执行java -jar xxx.jar启动

启动后看到如下结果意味着启动成功.可以看到没有任何spring xml配置.

….Started Example in 7.153 seconds (JVM running for 7.706)

打开浏览器localhost:8080,看到输出结果.ctrl+c关闭退出;

留言